git双库合并

原因

  1.本项目a开发时基于其他项目组的一个项目b进行扩展开发,但是b项目没有开发完,我们也要赶进度,于是基于b项目的主分支,copy出来后,新建了一个新的仓库,进行新的开发。然后,a,b项目都开发完了,现在a项目要发布到线上,需要合并b项目代码仓库的代码。

方案

  1.添加b的代码的源,作为新的源,命名为other。
git remote add other http://….

  2.获取b的代码
git fetch other

  3.新建一个分支存放b的代码
git checkout -b newbranch other/dev

  4.在切换为dev分支
git checkout dev

  5.在合并代码
git merge newbranch

问题

  1.为何可以直接merge,本质上这2个库是有共同的祖先的。因此可以直接merge。调用git merge-base dev new,是有共同祖先的。
  2.没有共同祖先怎么破,已经找不到了,直接使用git merge newbranch 时报错的,
  那如何,使用命令如下:
  git merge newbranch  –allow-unrelated-histories
  可以直接强行merge。只不过要解决冲突的文件更加多了。